bitkeeper revision 1.1159.1.478 (41bf2310-KrE0bKwjD6bmOJbDtrm4A)
authorcl349@arcadians.cl.cam.ac.uk <cl349@arcadians.cl.cam.ac.uk>
Tue, 14 Dec 2004 17:29:52 +0000 (17:29 +0000)
committercl349@arcadians.cl.cam.ac.uk <cl349@arcadians.cl.cam.ac.uk>
Tue, 14 Dec 2004 17:29:52 +0000 (17:29 +0000)
sync w/ head.

xen/arch/x86/domain.c
xen/include/asm-x86/processor.h

index 3122bc796ace5c699705c7f9fb014d9f725ab9c4..67b4e652c9ce41df53f37b2c37e22229628f9bc2 100644 (file)
@@ -197,29 +197,30 @@ void free_perdomain_pt(struct domain *d)
     free_xenheap_page((unsigned long)d->mm_perdomain_pt);
 }
 
-static void continue_idle_task(struct domain *d)
+static void continue_idle_task(struct exec_domain *ed)
 {
     reset_stack_and_jump(idle_loop);
 }
 
-static void continue_nonidle_task(struct domain *d)
+static void continue_nonidle_task(struct exec_domain *ed)
 {
     reset_stack_and_jump(ret_from_intr);
 }
 
+void arch_do_createdomain(struct exec_domain *ed)
 {
     struct domain *d = ed->domain;
 #ifdef ARCH_HAS_FAST_TRAP
-    SET_DEFAULT_FAST_TRAP(&d->thread);
+    SET_DEFAULT_FAST_TRAP(&ed->thread);
 #endif
 
     if ( d->id == IDLE_DOMAIN_ID )
     {
-        d->thread.schedule_tail = continue_idle_task;
+        ed->thread.schedule_tail = continue_idle_task;
     }
     else
     {
-        d->thread.schedule_tail = continue_nonidle_task;
+        ed->thread.schedule_tail = continue_nonidle_task;
 
         d->shared_info = (void *)alloc_xenheap_page();
         memset(d->shared_info, 0, PAGE_SIZE);
@@ -234,6 +235,7 @@ static void continue_nonidle_task(struct domain *d)
         memset(d->mm_perdomain_pt, 0, PAGE_SIZE);
         machine_to_phys_mapping[virt_to_phys(d->mm_perdomain_pt) >> 
                                PAGE_SHIFT] = INVALID_P2M_ENTRY;
+    }
 }
 
 int arch_final_setup_guestos(struct exec_domain *d, full_execution_context_t *c)
index 8bed35020c9a1181e2b204d1d9799eed2b318e16..a23c4a28099205dd16b4d51bfe53d8390cfb89d9 100644 (file)
@@ -400,7 +400,7 @@ struct thread_struct {
     /* general user-visible register state */
     execution_context_t user_ctxt;
 
-    void (*schedule_tail) (struct domain *);
+    void (*schedule_tail) (struct exec_domain *);
 
     /*
      * Return vectors pushed to us by guest OS.